package org.xtext.runtime.util;

import java.util.List;

import org.xtext.runtime.formula.IFormula;

/**
 * Core Interface for logical reasoning systems that may be attached to an agent. Sources
 * contain logic databases that are queried by the reasoner. All sources must implement the
 * {@link IQueryable} interface.
 * 
 * @author rem
 *
 */
public interface IReasoner {
	public void addSource(IQueryable source);
	public List<Bindings> queryAll(IFormula formula);
	public List<Bindings> query(IFormula formula);
}
